test: termlens 0.10.1, and the invariant the PTY suite rests on - #49
Conversation
The harness moves from 0.9; `drag` takes four column-first arguments now instead of two coordinate pairs, which was the whole breakage. `tests/emulation.rs` pins `Screen::unsupported()` exactly. Every screen assertion in this crate reads a grid a VT emulator produced from the binary's bytes — five golden files, two border scans and a styled banner — so a sequence that emulator does not implement makes the grid quietly wrong and every one of those assertions a claim about a plausible-looking fiction. The measured answer is one `SGR 59`: underline colour, which changes no cell. `tests/cli.rs` drives termlens-cli against this crate's own saved screens — rendered, diffed with its 0/1/2 exit codes, and `inspect` pointed at the real binary — at the version the lockfile names, so tool and library are one release. The vendored agent skill is refreshed to 0.10.1 and check-skill-version.sh fails when that copy and the dependency disagree on major.minor. CI writes TERMLENS_ARTIFACT_DIR and renders failures into the job summary. Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
184c599 to
3822283
Compare
|
Updated after adversarial verification. Two independent verifiers re-ran every gate and audited the diff. They found four things worth fixing, three of which were assertions or comments that could not do what they claimed:
Gates re-run after the fixes: fmt, clippy, 74 tests, and the extended |
…t validated (#64) #58, measured first, and the issue was wrong twice. The geometry half was already done — the suite runs nine tests at 80x24, two at 60x30, and reaches 110x32 by live resize; #49 changed that after I filed the issue. And the TUI emits no colour at all: every style is `Modifier::BOLD` or `BOLD | REVERSED`, `Color::` appears nowhere, and the shipped golden's `styles:` block names only bold and reverse. There was no colour-only cue to lose. So the tests assert the stronger claim. `no_view_of_the_tui_uses_colour` walks every cell of all four views and asserts fg/bg are the terminal default, structurally via `Cell::style()` — verified by colouring a heading on purpose, which produced "overview: 24 cell(s) carry colour" naming the first eight. `the_metal_banner_keeps_its_emphasis_under_no_color` re-runs the banner assertion under NO_COLOR=1, cell by cell. `no_color_changes_not_one_cell` requires the styled frames byte-identical with and without the variable. #59: launchbound never reads a register count, does not validate `#[launch_bounds]` against register limits, and does not check `#[launch_contract]` against grid limits. The confusion is earned — `stencil-1d/kernel.toml` opens by narrating register pressure, `lb_max` is a real tuning dimension, and the tool is called launchbound. Sharper than the issue put it: the one `.maxntid` relationship the corpus enforces holds because the kernel author wrote it as a constraint; launchbound attaches no meaning to `lb_max`. README and LIMITATIONS each state the boundary and link to the other, both anchors checked against GitHub's slug rules. Closes #58 Closes #59 Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
Upgrades the PTY harness from 0.9 → 0.10.1.
dragtaking four column-first arguments instead of two coordinate pairs was the whole breakage.74 tests pass. fmt, clippy
--workspace --all-targets --all-features, and the full suite are clean locally.tests/emulation.rs— the invariant everything else rests onEvery screen assertion in this crate reads a grid a VT emulator produced from the binary's bytes — five golden files, two border scans and a styled banner. A sequence that emulator does not implement makes the grid quietly wrong and every one of those assertions a claim about a plausible-looking fiction. The measured answer is one
SGR 59: underline colour, which changes no cell. Pinned exactly.The rest
tests/cli.rsdrivestermlens-cliagainst this crate's own saved screens — rendered, diffed with its 0/1/2 exit codes, andinspectpointed at the real binary — resolved at the version the lockfile names so tool and library are one release.tests/tui.rsgains coverage using the 0.10 surface, plus a styled golden and arun-metalfixture.check-skill-version.shfails when that copy and the dependency disagree on major.minor — it had drifted two releases with nothing to notice.TERMLENS_ARTIFACT_DIRand renders failures into the job summary via termlens'sreportaction (SHA-pinned).CHANGELOG.mdupdated under[Unreleased].